package com.xci.sys.dao;

import com.xci.sys.entity.SysApp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 应用数据层
 * @author 吕艳阳
 */
public interface AppDao {
    /**
     * 新建应用
     * @param entity 应用对象
     * @return 返回影响的行数
     */
    Integer insert(@Param("entity") SysApp entity);

    /**
     * 修改应用
     * @param entity 应用对象
     * @return 返回影响的行数
     */
    Integer update(@Param("entity") SysApp entity);

    /**
     * 修改应用状态
     * @param id 应用主键
     * @param status 应用状态
     * @return 返回影响的行数
     */
    Integer updateStatus(@Param("id") String id, @Param("status") Boolean status);

    /**
     * 删除应用
     * @param id 应用主键
     * @return 返回影响的行数
     */
    Integer delete(@Param("id") String id);

    /**
     * 检查应用主键是否存在
     * @param id 应用主键
     * @return 如果存在返回true, 否则返回false
     */
    Boolean existById(@Param("id") String id);

    /**
     * 检查应用名称唯一性
     * @param name 应用名称
     * @param id 应用主键
     * @return 如果存在返回true, 否则返回false
     */
    Boolean existByName(@Param("name") String name, @Param("id") String id);

    /**
     * 查询单个应用
     * @param id 应用主键
     * @return 应用
     */
    SysApp selectById(@Param("id") String id);

    /**
     * 查询应用列表
     * @return 返回应用列表
     */
    List<SysApp> selectList();
}